package Pet.Management.service;

import Pet.Management.domain.entity.TaskNode;

import java.util.List;
import java.util.Optional;

public interface TaskNodeService {
    
    List<TaskNode> getTaskNodesByOrderId(Long orderId);
    
    Optional<TaskNode> getTaskNodeById(Long id);
    
    TaskNode createTaskNode(TaskNode taskNode);
    
    TaskNode updateTaskNode(TaskNode taskNode);
    
    void deleteTaskNode(Long id);
    
    TaskNode completeTaskNode(Long id);
    
    List<TaskNode> saveAllTaskNodes(List<TaskNode> taskNodes);
    
    boolean isOrderCompleted(Long orderId);
    
    List<TaskNode> getPendingNodes(Long orderId);
    
    TaskNode updateTaskNodeStatus(Long id, Integer status);
    
    List<TaskNode> createInitialTaskNodes(Long orderId);
}